package com.sisgesbyte.web.managedBean.paginaweb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.dao.beanDao.FiltrosBean;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.services.administracion.MantenimientoAtencionCliente;
import com.sisgesbyte.services.administracion.bean.AtencionClienteBean;
import com.sisgesbyte.services.administracion.bean.AtencionClienteListaResponse;

@ManagedBean
@ViewScoped
public class BuscarAtencionxCodigoMBean implements Serializable{
	
	private static final long serialVersionUID = 1L;

	@EJB
	private MantenimientoAtencionCliente mantenimientoAtencionCliente;
	private String estado;
	private String codigo;
	private List<AtencionClienteBean> listaAtencionBean;
	
	@PostConstruct
	private void init() {
		estado ="";
		codigo="";
	}
	
	public void inicializar(){
		try{
			FiltrosSQLBean filtros = new FiltrosSQLBean();
			List<FiltrosBean> listaFiltros = new ArrayList<FiltrosBean>();
			List<Object> valores = new ArrayList<Object>();
			
			//filtro active
			FiltrosBean filtroCampos = new FiltrosBean();
			List<String> campos = new ArrayList<String>();
			campos.add("ac.active");
			filtroCampos.setCampos(campos);
			filtroCampos.setOperador("=");
			listaFiltros.add(filtroCampos);
			valores.add(true);
			
			//filtro por codigo
			FiltrosBean filtroCodigo = new FiltrosBean();
			List<String> camposCodigo = new ArrayList<String>();
			camposCodigo.add("ac.codigo");
			filtroCodigo.setCampos(camposCodigo);
			filtroCodigo.setOperador("=");
			listaFiltros.add(filtroCodigo);
			valores.add(codigo.trim());
			
			filtros.setListaFiltros(listaFiltros);
			filtros.setListaValores(valores);
			AtencionClienteListaResponse response = mantenimientoAtencionCliente.listaAtencionCliente(ObtenerIdTransaccion(), filtros);
				System.out.println("Respuesta: " + response.getCodigoRespuesta());
			if(response.getCodigoRespuesta().equalsIgnoreCase(ConstantesInternasSistema.CODIGO_EXITO)){
				this.listaAtencionBean =response.getListaAtencionBean();
				for(AtencionClienteBean ls : listaAtencionBean){
					setEstado(ls.getEstado());
				}
			}else{
				setEstado("No disponible");
			}
		}catch(Exception e){
			
		}
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public List<AtencionClienteBean> getListaAtencionBean() {
		return listaAtencionBean;
	}

	public void setListaAtencionBean(List<AtencionClienteBean> listaAtencionBean) {
		this.listaAtencionBean = listaAtencionBean;
	}

	public String ObtenerIdTransaccion() {
		String sessionId = "";
		try {
			FacesContext fCtx = FacesContext.getCurrentInstance();
			HttpSession session = (HttpSession) fCtx.getExternalContext()
					.getSession(false);
			sessionId = session.getId().replace(".undefined", "");
		} catch (Exception e) {
			sessionId = "Error";
			System.out.println("Error al obtener Session" + e);
		}
		return sessionId;
	}
}
